#include "app_device.h"
#include "app_mqtt.h"
#include "app_pool.h"
#include "unistd.h"
#include "stdlib.h"
#include "app_bluetooth.h"
#include "signal.h"
#include "app_runner.h"

static int is_running = 1;
static void runner_exit(int sig)
{
  is_running = 0;
}

int app_runner_run()
{
  // 0 注册终止信号 //ctrl+c kill
  signal(SIGTERM, runner_exit); // kill
  signal(SIGINT, runner_exit); // ctrl+c

  // 1 初始化线程池
  app_pool_init(5);
  // 2 初始化mqtt客户端
  app_mqtt_init();
  // 3 初始化设备
  Device *device = app_device_init(DEVICE_FILE);
  // 4 初始化蓝牙/串口
  // app_bt_init(device);
  app_bt_init(device);
  // 5 启动设备
  app_device_start();

  while (is_running)
  {
    sleep(1);
  }

  // 7 释放资源
  app_device_destroy();
  app_pool_close();
  app_mqtt_close();

  return 0;
}